/* 
1 页面被打开的时候 onShow 
  0 onShow 不同于onLoad 无法在形参上接收 options参数 
  0.5 判断缓存中有没有token 
    1 没有 直接跳转到授权页面
    2 有 直接往下进行 
  1 获取url上的参数type
  2 根据type来决定页面标题的数组元素 哪个被激活选中 
  2 根据type 去发送请求获取订单数据
  3 渲染页面
2 点击不同的标题 重新发送请求来获取和渲染数据 
 */

import {
  request
} from '../../request/index'
import regeneratorRuntime from '../../lib/runtime/runtime';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabs: [{
        id: 0,
        name: '全部',
        isActive: true
      },
      {
        id: 1,
        name: '待付款',
        isActive: false
      },
      {
        id: 2,
        name: '代发货',
        isActive: false
      },
      {
        id: 3,
        name: '退款/退货',
        isActive: false
      }
    ],
    // 存储订单数据
    orders: []
  },
  // 监听页面显示
  onShow(options) {
    // 1 获取当前小程序的页面站-数组 长度最大是10的页面
    const pageCurrent = getCurrentPages();
    // 获取参数 索引最大页面就是当前页面
    const pages = pageCurrent[pageCurrent.length - 1]
    const {
      type
    } = pages.options
    // 4 激活选中页面标题 当 type=1 index=0 
    this.getChangeActive(type - 1)
    this.getOrderList(type)
  },
  // 获取订单列表
  async getOrderList(type) {
    // 判断是否有token
    // 如果有token则继续下一步
    // 没有token则返回授权页面
    const token = wx.getStorageSync('token')
    if (!token) {
      wx.navigateTo({
        url: '/pages/auth/auth'
      })
      return
    }

    const {
      data: res
    } = await request({
      url: '/my/orders/all',
      data: {
        type
      }
    })
    const {
      orders
    } = res.message
    this.setData({
      orders: orders.map(v => ({
        ...v,
        create_time_cn: (new Date(v.create_time * 1000).toLocaleString())
      }))
    })
  },
  // 点击切换tab激活状态
  handleChangeActive(e) {
    // 获取索引
    let {
      index
    } = e.detail
    this.getChangeActive(index)
    // 2 重新发送请求 type=1 index=0
    this.getOrderList(index + 1)
  },
  // 对tab栏激活进行改造
  getChangeActive(index) {
    let {
      tabs
    } = this.data
    tabs.forEach((v, i) => {
      i === index ? v.isActive = true : v.isActive = false
    })
    this.setData({
      tabs
    })
  }
})